iT邦幫忙

2022 iThome 鐵人賽

0
AI & Data

預測惱人的人事物:跟我一起學習如何用資料分析來避開他們系列 第 37

修復 bug:電池最佳化無法取消 (part 2 of 2)

  • 分享至 

  • xImage
  •  

後續追蹤

Part 1 我們優化了背景限制取消流程以後,這兩天筆者觀察到:

  1. 電池最佳化關閉以後,偵測的提醒在開啟後不再出現
  2. 通知今天晚上沒有跳出

針對第二點,推測即使在背景不受限制,然而有時候筆者會用關閉所有 app 的功能,如圖:
https://ithelp.ithome.com.tw/upload/images/20221022/20141357P7v777Kh7h.jpg

可能是在這個時候我們的 app 被 kill 掉,根據官方文件:

Android devices can restrict your app while it's in the background to preserve battery life. This can prevent trigger notifications from being displayed.

我們可以推論 app 必須常駐在背景,手動 kill 掉系統 kill 掉的效果是一樣的。

筆者預期讓他保持開啟就可以正常運作~


進一步爬文

最佳化關閉 vs. 永不休眠

找到了這篇 Reddit 討論 Samsung 電源管理的兩種模式:永不進入休眠 & 最佳化關閉(不受限制)

其中這串留言提到:「不受限制意味著 Android 系統以及三星本身的電池優化機制,都不能干擾此 app 的電池用量。」

如果這個留言所言如實,那麼我們前幾天讓 app 進入永不休眠的名單,Notifee 偵測到 Optimization 仍然為 true 的現象就說得通了:

同時也會驗證了筆者的推論,「理論上」我們只要不要手動 kill,app 就會一直在背景。

預期操作如下:

  1. 長按 app 圖示開啟選單:
    https://ithelp.ithome.com.tw/upload/images/20221022/20141357w2EuzUTO5f.jpg

  2. 看到畫面右下角出現一個鎖,就會變成關閉全部 app 的例外:
    https://ithelp.ithome.com.tw/upload/images/20221022/20141357X9I9OGbAPv.jpg


Don't kill my app

這邊甚至建議我們把其他電池管理機制都關掉:

We strongly suggest to turn off Adaptive battery and Put apps to sleep options per instructions below.

在連結頁面的底下,有分享要如何關閉這些設定的教學。然而筆者並未採用這些建議,理由是:

  1. 目前發現確實將 app 設定為不受最佳化限制以後,通知除今天晚上外,都有正常出現,推測只要讓他在背景保持開啟就沒問題了。
  2. 教學是針對 Android 11,並非筆者目前所使用的 12。
  3. Samsung 雖然多出一些系統限制,但筆者其實覺得部分限制其實還滿不錯的,例如系統會幫忙移除掉不常用 app 的權限,如下圖。筆者擔心若關閉了這些設定,反而會導致一些非預期情形出現。
    https://ithelp.ithome.com.tw/upload/images/20221022/20141357ncCTMHkYwe.jpg

成果 & 持續追蹤

重複通知的 bug,筆者昨天重新 build 安裝在實體機後,早上確認通知的數目只有一篇,我們可以說初步已排除了。

電池最佳化無法取消的 bug,理論上只要我們維持 app 開啟就可以收到通知,雖然還未完全排除,但於此也算是到一個段落。


筆者先預告明天是本系列的最後一篇。

今天收工!


上一篇
修復 bug:重複通知 & 附帶處理 Notifee 原生的循環通知
下一篇
系列文回顧 & 後續更新管道
系列文
預測惱人的人事物:跟我一起學習如何用資料分析來避開他們38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言